package game;

import java.awt.Image;
import java.awt.Toolkit;
import java.io.File;
import java.io.IOException;

import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.UnsupportedAudioFileException;



public class Bola { 
    private int x;
    private int y;
    private double angulo;
    private int velocidad;
    private boolean visible;
    private Image bola;
    Clip sonidoLanzamiento = null;
   
    public void moverBola(){
        if (visible){
           
            bola=Toolkit.getDefaultToolkit().getImage( "imagenes/bolaMovimiento.gif");
            x=(int)(x+(Math.cos(angulo)*2.5)*velocidad);
            y=(int)(y-(Math.sin(angulo))*velocidad);
            if (y<-100)
            {
                visible=false;
                paraSonidoLanzamiento();
            }
           
        }
       
    }
   
    public Image getBola() {
        return bola;
    }

    public void setBola(Image bola) {
        this.bola = bola;
    }

    public void lanzarBola(int nX, double nAngulo, int nVelocidad){
        y=200; x=nX;
        sonidoLanzamiento();
        //bola=Toolkit.getDefaultToolkit().getImage( "imagenes/bolaQuieta.gif");
        angulo=nAngulo;
        velocidad=nVelocidad;
        visible=true;
       
    }
   
    public int getVelocidad() {
        return velocidad;
    }
    public boolean isVisible() {
        return visible;
    }
    public int getX() {
        return x;
    }
    public int getY() {
        return y;
    }
   
    private void sonidoLanzamiento ()
    {
        //System.out.print("inicia sonido");
        try {
            sonidoLanzamiento = AudioSystem.getClip();
        } catch (LineUnavailableException e) {
            e.printStackTrace();
        }
        try {
            sonidoLanzamiento.open(AudioSystem.getAudioInputStream(new File("sonido/lanzaBola.wav")));
        } catch (LineUnavailableException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (UnsupportedAudioFileException e) {
            e.printStackTrace();
        }
        sonidoLanzamiento.start();  //lo reproduce infinitamente.
    }
   
    private void paraSonidoLanzamiento()
    {
        sonidoLanzamiento.stop();
    }
   
}